Enhance play logic and supporting methods