add factory method for tokens