added attribute and uniform support