Completed implementation for all 4 API calls