complete rewrite for single component