experimental implementation with request "by reference", which makes usage easier