Initial commit. Program works but needs more tests