cluster abstraction