cleanin-up the implementation (not finished yet)
87 files changed