Make member fields readonly where appropriate
More code cleanup and simplification