nearly done.. still search for bugs continue