start implementing alternative algorithms