just bunch code for final project