initial commit, houses main function