code relocation
fix type. add more tests.