implement cond
add =
add factorial test