Move registration interface to core library