Final refactor on object ops. Still ugly