fish hook algorithm