add partial functions