add request method, but it's so not very well. Need re-factoring and testing