Common design patterns for Symbian OS the foundations of smartphone software (Wiley, 2008)