Final paper for CS295U.