bubble up click event and use most recent view; refactor