add missing Interface files + solution file + Refactor all code