Changed contract difinition to be Moose like