Why are you using the factory pattern (that weirdly enough needs to be called via **new**) for creating players?