implemted some stuff