switched to use case + gnu11