What Components Are Needed For Machine Learning