add additional constructor

add protected methods to make extending easier

make GenericsScriptManager optional, defaults to using global engine manager