all basic funtion working