user difined methods learning