added classes with changes from unit testing, checked out from dev