add more methods
finish 80% bindings