Added more stuff, but this is going to be messy...