add missing functions