added environment mapping