add packaging boilerplate
first pass at basic functions