everything use interface instand of object and run validate automatically.