Can we make Attachment an enum, instead of having two bools (Attachment and LocalAttachment, with LocalAttachment only being valid if Attachment is true). I suggest Attachment is an enum, with 3 values : 1. None (same as Attachment = false) 2. Local (same as Attachment = true, LocalAttachment = true) 3. Remote (same as Attachment = true, LocalAttachment = false)  One less field to worry about, and one less case to validate :) 