add free and working on compacting