Refactor: Dropping out templates and using ASM as separate library