Refactor for cleaner kwarg interface