improve on classes interface structure