Adding listeners
And caching