add fns
add some methed