2nd commit after finishing most of the code