add more preferences (random input & filter)
implement filter preference choosing
fix up