added cstring include
using own lexical_cast implementation instead of boost