Made it async, added user class, files added