parse on non-UI thread