added first implementations