slight refactor
more fluent interface
initial work