removed std namespace and added eigen support