Added basic documentation for most of the method