Initial commit, clean up code and make public