starting implementing register allocation