- Switched to a class-based structure instead of functions in classes to get around optional output parameters