mostly working, scaling is still weird though