use dynamic instead of Object