Starting to introduce more abstraction.