let's try and make that a little more extensible, shall we