hacky attempt -> proper attempt