node user api + reorganise