added (for msvc12 needed) cast because of multiple target functions