1. add inherit
2. change clone method implementation