added a buttload of new features