further implementations