Import from multiple formats

A cleanup and squash of #426