restructure, modify build