ommitting some stuff