You might already see some possible programming errors that could be made that would not be at caught compile-time but could cause problems at run-time. If you haven't, this might be the time to point them out. Nevertheless, if one follows the design patterns described in this document, avoiding these pitfalls should not be difficult.