completed more functions