Also, not entirely sure what package this and it's subclasses really belong in.  Thoughts?