changed handle implementation