implement settings feature