added forward calculation