State && Decorator Pattern