reverse iteration possible now

change scheme a bit to allow reverse iteration
added BSD license clause