merge shader and program classes