Use Q promise library and present a promise interface to clients. Use twix for date ranges. Allow clients to pass numbers, strings, Dates and objects representing draw numbers, dates and ranges.
Change error details passed to callback when draw of particular date does not exist. We were passing a moment back now we should pass a native date object.