initial implementation for copy-paste usage