added support for normal mapping