[#3] Moved transitions out into a new class.