updated class
updated from main branch