first pass at buffer obj, need to abstract shader options