applied review feedback.
and fixed the undefined variable reference bug when "change password" was failed
changed spec of function "canl" that any functions are "true".
changed shallow copy to deep copy.
(deep copy is original implementation)