refactored lenient parsing
use named parameters in ->from_string