added vendor prefixes for cross-browser compatibility