working example with normal mapping