merged
less namespace pollution
better names
new design