draw/contracts

A set of abstractions extracted out of the Draw components