implement trackmethod