forward pass worked out still need to cache results