added enhanced version