refactory area select