okay, actually implemented the full lazy evaluation design pattern...
pattern