Main author: Eric Vidal