added machine learning