class refactor continues