Implement 3.1, 3.2 and 3.4