add some extra annotation and their use