componetized everything!