compile
initial tests work
progress