Support characterwise and blockwise motions

Closes #2
Closes #4