Working version until point 4