Fn composition

Resolve #8