refactor out keeper's hash mapping, use keeper and backend struct list instead