I feel like if you're worried about picking the right abstraction then this is almost certainly the wrong one.