Use weak maps to store views