Non-linear codes