A more or less working version (pre-alpha)