Refactoring

- Modularized project
- Changed everything to use Text instead of ByteString