Revert "free3"

This reverts commit 8e90fad9aacade6273fcff1a785cf6cd30ac6b16.
Revert "free2"

This reverts commit f325a476aa240ca88b8d68bc91ce34900ac05191.
Revert "free1"

This reverts commit f225dcb7cd65f35afd316839d678d3de7835cb03.