use methods instead of mutable state
use default method instead of mutable state
Merge pull request #205 from tamird/less-state

reduce mutable state