Implemented surface data structure
- implemented the data structure for surface representation
- defined new exceptions used by Surface class