Way too complicated system to support custom tags