final project for CS578 2014fall