fairly decent drag and drop collection compiler