use enum for scale & mode