further refinement based on Mounce