UNFINISHED - start implementing from_string()