add in bilinear stuff