adding proper shader implementations