added player logic