adding testing and documentation