add class `Shioconv::Unit`
split each functions to subclasses