Recommendations API

closes #86