Complete rewrite!
Merging