working nice player, mostly finalized data structure