apply currying principle