initial commit, unit tests, readme, package management