self challenge

added some functions, they malfunction.

fix them...