First version:
 Character-wise operations
 Very not optimal client-side

Attempt to split action from operation