clarify example usage
make some methods overridable