updates from various forks