implement Koshi method