i think i'm finished with the base functionality