added async support; changed configuration API