hmm i will finish this later