Adding Transitions code and unit tests