add join, reverse, clean