add learning loop for functional composition preferences