method flow rethink