Initial commit: added template classes