Add select factory method