adding RenderStateGroup and initial design of renderer