major refactor and interface changes
dogfood