Another attempt at describing semantics
Manual merge. Closes #7