Traffic signal

Resolves #59. It also includes the changes in my previous pull request. I'm not sure how to not include those...