Major reorganization. Minor code change.

This reorganization allows for easier application
development with shared resources. This resources
include a soft timer that can be used to schedule
events in your application.