refactor garage state