add exp design
add exp system
add some util method
update