Added documentation and corrected the use of expression in the class hierarchy