writing a mesh abstraction