use a contract to describe constants