Big change, not fully functional yet, see readme.md