work in progress
Refactoring
Work in progress