added modular-scale functionality