pre show subview refactor