upload Kai's method