self and super modules