add reverse functions