Constructor cleanup

It is based on bug_string_amount.

There is one issue - empty string produces warning should it be supported as a zero or left for programmer to solve it? Since NULL is supported as 0.