refactor to match effective go code