Add support for reading your own trace; implement Alternative (close #4)