Made it async, added user class