busy. added new glprogram and shader class