split program into separate source files
Merge pull request #8 from npostolovski/separate-source-files

split program into separate source files