In the last decade spatially distributed hydrological models have become increasingly versatile due to the improvements in computational capabilities, the availability of digital data, and the use of Geographical Information System (GIS). Keeping up with technological development and new data types is becoming a challenge. Moreover, models are often developed to answer a specific need and thus lack flexibility, making it nearly impossible to further develop them. Using the principle of adaptability and expandability, we discuss an object oriented, modular model that is based on the fully distributed and physically based hydrological model WetSpa. The original WetSpa model has been disassembled into smaller and independent modules and it has been rewritten using the open source computer language Python. In the new structure three main components are identified: (1) a pre-process component for GIS maps preparation; (2) a Unit Class, representing the watershed discretized in raster cells or physical based objects; and (3) a Model Control Class, which organizes input/outputs and gives commands to the objects unit. The physically based processes, such as runoff, infiltration, interception, etc., are coded in separate scripts and organized via the Model Control Class. This approach allows the user to select which processes will be simulated and in which order, as well as to evaluate the impact of different parameterizations of the same process. The new model, WetSpaOO (Object Oriented) has been successfully tested on a theoretical case and, thanks to this new flexible structure, it has been coupled with the groundwater flow model MODFLOW.