refactored rearranging members