make Mesh more flexible and assert Programs do not have attributes bound when use() is called