free memory design