implemented argument swapping
debugging