todo's in place for refactoring