Added failing references test
Reorder
Just rely purely on std::runtime_error

Rather than duplicating functionality
Type safety ftw