separate behavior from plist.php