still needs to_string and insert functions