Split template parameters and requirements

Signed-off-by: K-ballo <k@fusionfenix.com>
Added template arguments to type identifiers

Signed-off-by: K-ballo <k@fusionfenix.com>