Here's where the memoization thing comes in.   You could assign the output of this into an ivar (instance variable) above in the before block or you can just keep calling this method wherever and have it only run through it if topic.  Example:

```ruby
def three_topics
  @three_topics ||= begin
    messageboard = create(:messageboard)
    create_list(:topic, 3, messageboard: messageboard)
    PageObject::Topics.new(messageboard)
  end
end
```

This assigns the last thing being returned, an instance of `PageObject::Topics` to `@three_topics` IF `@three_topics` is nil. If it's not nil, if it's already been assigned, it just uses that already. It's a caching mechanism.