add closures
add quicksort