Offline messaging

This should, I think, have everything requested by you @Zarel, so it should be ready to go whenever you deem suitable