jtong - question 4 - introduce poisen effect
jtong - question 4 - introduce effect classes
jtong - question 4 - split effect to four files
jtong - question 4 - refactoring remove is_on from effect