updated forward checking