laboration 3 - post refactoring v1