Refactor to add not_implemented macro.

I got sick of writing that throw statement over and over and over.