Architecture Refactoring (playing around with Self-Typed Annotations)