Everything works now. To refactor