compile signature