Better separation of core and ui functionailities