further work, refactoring