added transposition and other stuff