technical part almost done. Refactoring and still facelifting