work version with syncAction