Return the object rather than the constructor, and expose a configure method to allow overrides. Fix bug with counting