Added recursive r calls

Added error checking for key and callback
Added error logging and info logging