added gaurds and setters for trying to change readonly objects