go straight to response on nil nil carry
removed redundant non-nil conditions
added better gp checks
removed empty retrieval buffer checks when they are chained