support dynamic dependencies