starting to split code into smaller modules