replace ZoneParser with ContentLoader with slightly better design