See http://learn.elgg.org/en/stable/contribute/code.html