clean code, fix literal::string and C++03 support
multidimensional arrays supported by construct()