add rainbow view, fix the bug when Public is null