rework scaling and such