done but kinda workaroundish