Core

To be done.