interface for async learning