VERY BAD IMPLEMENTATION. DON'T LOOK