added final modifier + minor changes