new class hierarchy for sprite