#1: takes arrays into account in properties