- piece revive related functionality(incomplete)