Golang Design Patterns - Chain of Responsibility