functionally, but not as fast as thought