Implement wrapping, all tests passing!