implemented core api