add structure suggested by Scott