fixed some problems with how arg* functions handle placeholders, also
handling failure in a placeholder