Is there a reason why you implemented these operations as private nested inner classes?