Shit code, this was not necessarily good decision