Class design and methods