class design and implementation 3411537