added implementations for everything but the threads