Function simplification
Added unique_function
Use unique_function were appropriate to support movable-only arguments