First attempt at introducing interfaces