Refactored the code : removed useless interface & added copy constructors
Refactored the code : removed useless interface & added copy constructors