added a buttload of things