Updated documentation
Switched to `Optional` and use defaults more heavily