collection class should be optional
use openstruct instead for config
optional value parameter in eval