Actually make Setting work, add tests