puny player implementation