Add select based implementation