added all registers + some little refactor