some new functions include class defination