Ok, now really last commit for a while

Maybe trying to do it in dart instead, maybe something much better!