replaced interface UserInputRetriever by smaller, specialized callback interfaces