add collect method. no error, but something still wrong.