separates out radio/checkbox rendering code into subclasses