Changes to further the abstraction and facilitate reuse.