many changes; includes first cut at elasticsearch integration