Algorithm - version 2