Separate token implementation into Token.cpp/Token.hpp