use decorator
use decorator
settings overhauled