Needs log.
Some more generifying.