generalize drawer
reduce memory footprint