added texture mapping (not working 100% at the moment)