some simplification by using active annotations