refactoring / additions