This is very wrong, but it's a step in some direction