values should be generated randomly