use new and free to allocate popups. There are some crazy situtations here, we'll have to revisit this.