factored out contact struct, start of shelter struct