Breaking functionality apart