reworked Player constructor