refactor Go concepts