token separate class need some fixes maybe