update milestone detection to fit ClientDecorator Pattern