Hydrological modelling with components: A GIS-based open-source framework