added forward checking