franky reorganize how pixelbuffer get created and deleted.