better design
update
update design
fix confilct