take out request from inside module and add stream support