basic structure for player