Changed everything to async callbacks