Left and Right methods, states is now an array plus some more refactoring