working on 2D codes