Adding self type (parametrized by mutability)
Cleaning up