Moved exp to it's own package and started to flush out the implementation