reduce a lot of memeory usage