restructure, and then some