still not finished but add some stuff