trying a different approach without overriding the take method