use inheritance
lots of renames and changes