Winning submission for the CIS520 Machine Learning final competition