after code optimisation and removing redundant classes v2
after 1234 changes and adding abc.copy