implemented basic partial application