better class define