Refactor

- Make private methods
- Divide `process` and `detect` methods
- Options now have `name` and `accepts` properties