added options
added randomness