adds allow_empty param to _property so it won't cache empty values