allow free subobjects and adjust definition