basic module functions
adding files
main changes
organizing files
change to main, supporting command line arugments now
final modifications