forward compute implemented