Moving pieces half implemented. OO refactoring.