Now supports shortcodes, needs code cleaned up.