found some native functionality for modern browsers