add core.factory.go
add functions
add DQL functions