Reworked based on the feedback: keeping interface asynchronous.