Added the beginnings of some lazy evaluation.