Too much copy/paste from Neskell project. Need to think and code myself instead