refactoring

not ready for use!