clean-up O
huge refactoring step