some changes
new Class and new functions