initial separation into modules so that osgi can happen