more functions added