hacky changes prob with some mistakes...