split into two class