initial player implementation