several interesting changes!

still not testable yet
focus on making basic behavior possible to test