refactor zones into layers