reorganize everything so so i can pass arguments to it