First commit, added requirements, fully functional