Implement proper calculation for prompt and completion tokens.
Reduce coupling by putting types and definitions in their appropriate files. Chat utils for creating prompts and messages have been added.