remove assuming defaults, let user subclass