restructured to remove excessive dependencies.