Feature/cleanup

This PR is for cleaning up the interface and code so that we can get an RC ready as soon as possible.