added sync and reverse