strategy interface
isolate ccnd.c parts of self-learning