removed redundant exception throw
added proper package structure
protected fields rather than private
removed private access modifier from Data constructor
changed private methods to protected
added Material class. empty so far