more generic, less warning