added comments. fixed mutable default issues