lazy_take implemented