Adding documentation and methods to impliment