additional refactoring before screencast