refactored to use Builder instead of Modeling (user now provides Enums for symbols instead of Lenses)