add no new keyword support
add throw error instead of console.warn
add Signature method testing