Added MP Mechanics and Abstract Method run()