further dirstruct rearranging