added eigen support and removed std namespace