Restructed how tests will be written + some API changes