simplify impl