major refactorings, package organization
refactorings
reverted previous change