add some validate and effect