Handling e1, e2 separately. Implemented extension ob basic classes.