extracted super classes into modules