added forward checking as a preprocessing step