add settings, address copying, refactor