E-learning Materials Development: Applying and Implementing Software Reuse Principles and Granularity Levels in the Small