implemented settings functionality