Adding in better shader API