implement persistent messages