use &str instead of String