core no longer supports old controller protocol
factored core lib into separate file for tinker