Refactor to eliminate inheritance

28 files changed