save incremental work
so far
type refactoring didn't work