cleaned up a little, still needs more tho