refactored wikipedia example
playing with lazy and queue