there is memory leak, not sure where yet