Make this tab-separated for pastability
Refactor a bit