more generic stuff for get() and future things