rearranged to reduce whitespace