separated code into definition/declaration files