implements proxy immutable