Added a load of testing and validation