Golang Design Patterns - State Pattern