code cleanup
abstraction
merged