renamed functions, demystify diagonal creation, fixed interpolation