careful of NPE's here...