Finished and tested API