various

mostly refactoring into components