new branch
removed one iteration due to low efficiency