Right now, we have the same pattern over almost all operations. We should find a way to make it easier to read/maintain.