start implementing other algorithms