updating plugins mechanism to be fully asynchronous