organized based on templates