implemented some stuff