Merge conflicts fixed and implementation fixed to incorporate everyone's changes