added generic keyword
added 'new' keyword