start work on splitting components
add somewhat correct component parsing
add sorting with components
document component parsing