refactor: introduce cluster