Doesn't use sync function