add feature generation