Refactored the cluster command into an interface and tried to clean up the API a bit more.