decided against having in function declarations and wrappers. Just wrappers
renamed lockArgs and optionalArgs to exactly and between respectively