add setting functionality