Big commit... Need to incorporate User functionality