changed settings object to recurively accept options json object and fixed some delete issues