Reorganize for better testing and distribution
Add initial dist