Added toString() methods. Also Refactored.