Initial version

first commit. includes draft of source and some unit tests.