Position and subclasses handle the logic, external to the classes, so it can be swapped out later (at runtime positions can’t change)