add some code, christ this is hardwork already