Use value_type for conversion of read raw data
Switch to use of std::copy, since apparently I can't handle memcpy :\