improved forced()