Abstract object types out into LogeObjectType interface, initially with string and struct implementations