a bit more rearranging