refactor core, struts