some changes, probably broken now