Beginning of mouse interaction
Added ShaderFunctionTemplate to reduce the use of unnecessary wrappers
Renamed *ShaderFunction => *Function
removed print() calls