added version enum and detector