controllers can cache resources