base functionality working for shortcode