Second commit, most of the structure done, but too much mistakes.