move it in base class to avoid mutable