first step to complete contract functionalities