added unapply signatures