+ refactoring
+ added accessor Methods
+ refactoring
+ added checks & Exceptions