refact. and reassemb.