finished initial API