Turn protocols back into classes, fix lift retain cycle, misc. fixes