Completed the first go at the grammar for components