add cool algorithm