Adding abstraction interface in a process to reduce more cyclic dependencies. right now i reintroduced some cycles, but will remove them soon when i get the packaging correct.