<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def copy(self):
 """ Returns a copy of Markov Chain Model. Return Type: MarkovChain : Copy of MarkovChain. Examples: --------- 'intel': {0: {0: 0.25, 1: 0.75}, 1: {0: 0.5, 1: 0.5}}} """

        markovchain_copy = MarkovChain(variables=list(self.cardinalities.keys()),
                                       card=list(self.cardinalities.values()), start_state=self.state)
        if self.transition_models:
            markovchain_copy.transition_models = self.transition_models.copy()

        return markovchain_copy