Core construction

Did some construction on the core, adding interfaces and changing up some things.
It should be easier to maintain and develop now.