some changes to code- class abstraction included in new code too.
some changes to code- class abstraction included in new code too.