renamed NoteChain to just Chain, because I am moving towards heterogeneous patterns that don't care about the types of their elements