More abstraction, less code...