added use strict and warnings