new archi

auto includes and respect oop