fix some bug and rename
fix some bug and rename
add set and get function dependens on the type
update test