Add async functionality [ci skip]