initial commit

not complete, yet, but should provide a decent starting point.