a decent portion of the NormalMap class has been implemented