refactor and reduce to single purpose classes
Merge branch 'ood_approach'