almost complete sprite class