added substruct test