dont use ng-if to avoid memory leak