add precondition
annotation