Finished API for full functionality. May need to add some more later.