initial unitests and docs