This is the first spec of many that will be re-written. Eventually this will remove the need of the shared examples as well as removing lots of code duplication and odd context blocks.