start to fix internal API