added default but overridable process functions