fixed bug about return