re-organize components