Minor change to construct ArgSpec instance only once

This decorator may be used quite a few times so it's best to reduce the work it does. This change ensures we only construct a `ArgSpec` instance once.