select card refactor