moved player into its own module