Major refactoring, code now leverages OpenAI function calling for various tasks and it's now much easier to integrate new features.