soft arrays

this eliminates the need to set up force_array in most cases; default behaviour is left unchanged