Core functionnality implemented. You can train