refactoring underway
refactoring and new additions
merge