moved external dependencies to public lib, added classname pattern support