working on modular program structure