Refactoring: introduce possibilites for extensions