restructure, incomplete