introduce struct for every language component