split components into different files for my sanity

closes #7