this kind of sucks from a performance standpoint, i'd like to make it better
pretty simplistic for the moment, it will become more robust later (TM)