test experiment
a little bit of refactoring