work in progress this is really big i swear