added analytics, because why not