Add more abstraction.