add placeholder mixin, props @srsgores