recurse type checking into structure initialization (closes #28)