flexible settings framework