Add additional options and improved promise handling