basic implementation of specializations is done