further refactor
more refactoring
further refactoring/tidying