add testing and validation