design pattern annotation