add error function
add memoize
version 0.3.1