grid
must normalize first