Added Documentation and made name of methods more semantically meaningful