added some stuff, not complete