devide branch_recent and add tests