Cleaning up interfaces and adding support for CK