adding some stuff (has errors)
improving and fixing
not stable yet!