added several methods and some documentation