started extracting interfaces. tests dont compile.