See http://www.bertos.org/