added FULL functionality, added timing for all applicable functions and increased program speed dramatically