line up the arguments on the same column
aren't some of the casts in here unnecessary?