initial code commit, test cases not added or working yet