add nil checking