optimalised for testing