wrap up core API