Factor out Player entity