Moving the constructor to the end
Fixing method visibility, arguments and documentation