Making some progress on the OO rewrite