if `val` is ever longer than 1 char then this whole thing would fall to pieces anyway