deterministic realistic mode draft. Code not clean at all.