reorganize code into a package, initial publish