initial messy whack taken, need to update docs and split out contrib modules and test