reorganized API calling methods