Abstraction complete. Tests pass