`viewport()` accept multiple keywords so no need to worry about that. And yeah, let's split this up a little.