update to use string/join