added callstatic for direct creation