rewrite for barrel select component