allow easy subclassing
allow easy configuration for default settings