feat(select): refactor select directive (cf. #85)