use a cleaner data structure