add unsafe
binder refactoring to implement same interface
implement typed setting