caller-of final version