add partial apply