Two Stage Algorithm