This class seems like a pretty big addition for what could have just been a mutable object that was closed over?