api is complete, still needs testing