Add documentation and provide better calling methods