make all functions use callback. Add comments to request method