non-const apply