massive refactor to communities