player decorators & player implementation