^ improve class generator