Some work, probably made more bugs. :D