I tried to use all c++11 std::array but found it inefficient. Put it
aside first