smooth and flat shading implemented