testing and debugging