abstract utility functions and recommendations api