#20 altered fixed method signatures, parameter names and reordered implementation class according to the interface