Analytics now work for the most part and some of them have native data structures. Cleaned up code logic and introduced more layers in hierarchy so that code is repeated in less places. reportId is no longer passed in the constructor of any of the Analytics classes. The user must now call setReportId(). This is much cleaner because it doesn't require overloaded constructors anywhere, making everything much more straightforward.