Add implementation and basic templates