- refactor
- more type inference.