partial function implemnted