Initial commit--all code up until this point written by Avinash Repaka