opened this up a bit, it needed to be a bit more extensible.