Alright, I'll merge the current code now and refactor it later.