The self-> here isn't necessary, but otherwise looks good