Initial commit, coding done, need testing