integrating cursor into response
session now uses promises to encapsulate async i/o