Updated player with some improved logic